#ifndef VAINSHTEIN_H
#define VAINSHTEIN_H

#include "classes.h"
#include <QProgressBar>
#include <QTextBrowser>
#include <QFile>
#include <QTextIStream>

class Vainshtein : public Structure {   //for propagating waves
public:
    Vainshtein();
    Vainshtein(Structure *);
    int numCoef[3]; // number of coefs
    double Kappa;
    double Gamma,GammaT;

    __complex__ double eeDelta(double ww);
    void coeffs(QProgressBar *);

private:
    __complex__ double compSqrt(__complex__ double);

    __complex__ double hankel(int,double);
    __complex__ double hankelS(int,double);

    __complex__ double gnMultiply(__complex__ double);
    __complex__ double gnMultiplyT(__complex__ double);

    __complex__ double eSw(int);
    __complex__ double eSwT(int);
    double Omega(double);
    double OmegaT(double);
    double ArgOm(double);
    double ArgOmT(double);

    __complex__ double getRln(double);
    __complex__ double getTln(double);
    __complex__ double getRlnT(double);
    __complex__ double getTlnT(double);

    gsl_complex Eps;

};

#endif // VAINSHTEIN_H
